// ioTest
package main

import (
	"fmt"
	"io/ioutil"
	"os"
)

// 定义测试用的目录
var DIR = "/data/tmp"
var FILE_PATH = DIR + "/a.txt"

func main() {
	dir, err1 := os.Open(DIR)
	fmt.Println("open err:", err1, " dir:", dir)
	if err1 != nil {
		// 创建目录
		os.MkdirAll(DIR, 0766)
		dir, _ = os.Open(DIR)
	}

	// defer 语句正好是在函数退出时执行的语句，所以使用 defer 能非常方便地处理资源释放问题。
	// 释放资源
	defer dir.Close()

	file, err2 := os.Open(FILE_PATH)
	if err2 != nil {
		// 创建文件
		file, _ = os.Create(FILE_PATH)
	}

	defer file.Close()

	var str = "zxy\n你好阿\nabc"
	// 写
	file.WriteString(str)

	var b []byte
	// 读
	b, _ = ioutil.ReadFile(FILE_PATH)
	fmt.Println("------------------")
	fmt.Println(string(b))

}
